package com.roadjava.rbac.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.roadjava.rbac.bean.entity.LinkRoleAuthorityDO;

import java.util.List;
import java.util.Set;

/**
 * 针对表【link_user_role(用户和角色关联表)】的数据库操作Service
 */
public interface LinkRoleAuthorityService extends IService<LinkRoleAuthorityDO> {

    /**
     * 通过角色id列表查询去重后的权限id列表
     * @param roleIds 角色id列表
     * @return 去重后的权限id列表
     */
    Set<Long> listAuthorityIdByRoleIds(List<Long> roleIds);

    /**
     * 通过权限id去删除关联的数据
     * @param authorityId 权限id
     */
    void deleteByAuthorityId(Long authorityId);

    /**
     * 按roleId进行删除
     */
    void deleteByRoleId(Long roleId);

    /**
     * 通过角色id查询权限id列表
     */
    List<Long> listAuthorityIdByRoleId(Long roleId);
}
